package ddalarm

import "net"

func GetLocalIp() (string, error) {
	netInterfaces, err := net.Interfaces()
	if err != nil {
		return "", err
	}

	for i := 0; i < len(netInterfaces); i++ {
		if (netInterfaces[i].Flags & net.FlagUp) != 0 {
			addrs, _ := netInterfaces[i].Addrs()

			for _, address := range addrs {
				if ipnet, ok := address.(*net.IPNet); ok && !ipnet.IP.IsLoopback() {
					if ipnet.IP.To4() != nil {
						return ipnet.IP.String(), nil
					}
				}
			}
		}
	}

	return "", err
}

var (
	AlarmTemplate = `异常消息:
- 环境: %s
- 服务名称: %s
- 消息IP: %s
- 消息时间: %s
- 提示: %s
- 错误信息: %v`

	NotifyTemplate = `通知消息:
- 子系统: %s
- 消息时间: %s
- 主题: %s
- 详情: %v`
)
